#include "stdlib.h"
#include "stdio.h"
#include "string.h"

//demo01_铁律2

//
////把实参取地址传给形参
//
void getFileLen(int *p)
{
	*p = 200; //p是a的地址，*谁的地址，就不间接的修改谁 间接赋值*p放在=号的左边
	//*形参去间接地的修改了实参的值。
}
int getFileLen2(int *p)
{
	*p = 200; //p是a的地址，*谁的地址，就不间接的修改谁 间接赋值*p放在=号的左边
	return 1;
}

//
//
///* 间接赋值成立的三个条件
//条件1  //定义1个变量（实参） //定义1个变量（形参）
//条件2//建立关联：把实参取地址传给形参
//条件3：//*形参去间接地的修改了实参的值。
//*/
////间接赋值的应用场景
////场景1 在一个函数内 1 2 3 
////场景2：在啷个函数之间 12      3 
//
//// 1           23//
//
////间接赋值条件应用深入分析 三个条件的组合，分别产生三种很重要的语法现象
////123都写在一个函数里面
////12写在一个函数里面  3 写在另外一个函数里面
////1 写在一个函数里面  23 写在另外一个函数里面 抛砖。。。到时候别不认识啊。。。。。
//
void main()
{
	int a = 10; //定义1个变量（实参）
	int *p = NULL; //定义1个变量（形参）

	//直接修改a的值
	a = 20;
	printf("直接修改a的值:%d \n", a);
	//间接的修改a的值
	p = &a ; //建立关联 把一个变量的地址，赋给另外一个变量

	*p = 100; //p是a的地址，*谁的地址，就不间接的修改谁 间接赋值*p放在=号的左边 //*p间接的修改另外一个变量

	printf("间接修改a的值:%d \n", a);

	//打造这个环境p = &a ;
	getFileLen(&a); //把实参取地址传给形参
	printf("函数调用后a的值:%d \n", a);

	system("pause");
}